package com.gxjtkyy.datadistributer.writer.rdbms.vo;

import java.util.List;
import java.util.Map;

public class DbBase {
   private String targetTableName;
   private List<String> keyColumnNames;
   private List<String> otherColumnNames;
   private List<String> updateColumnNames;
   private Map<String, String> comparableColumns;
   private boolean insertable;
   private boolean updatable;
   private List<Object> keyValues;
   private List<Object> otherValues;
   private List<Object> updateValues;
   private boolean dropWhenValueTooLarge = false;
   private boolean dropWhenCannotInsertNull = false;
   private boolean dropWhenValueLargeThanSpecifiedPrecision = false;

   public String getTargetTableName() {
      return this.targetTableName;
   }

   public List<String> getKeyColumnNames() {
      return this.keyColumnNames;
   }

   public List<String> getOtherColumnNames() {
      return this.otherColumnNames;
   }

   public List<String> getUpdateColumnNames() {
      return this.updateColumnNames;
   }

   public Map<String, String> getComparableColumns() {
      return this.comparableColumns;
   }

   public boolean isInsertable() {
      return this.insertable;
   }

   public boolean isUpdatable() {
      return this.updatable;
   }

   public List<Object> getKeyValues() {
      return this.keyValues;
   }

   public List<Object> getOtherValues() {
      return this.otherValues;
   }

   public List<Object> getUpdateValues() {
      return this.updateValues;
   }

   public boolean isDropWhenValueTooLarge() {
      return this.dropWhenValueTooLarge;
   }

   public boolean isDropWhenCannotInsertNull() {
      return this.dropWhenCannotInsertNull;
   }

   public boolean isDropWhenValueLargeThanSpecifiedPrecision() {
      return this.dropWhenValueLargeThanSpecifiedPrecision;
   }

   public void setTargetTableName(final String targetTableName) {
      this.targetTableName = targetTableName;
   }

   public void setKeyColumnNames(final List<String> keyColumnNames) {
      this.keyColumnNames = keyColumnNames;
   }

   public void setOtherColumnNames(final List<String> otherColumnNames) {
      this.otherColumnNames = otherColumnNames;
   }

   public void setUpdateColumnNames(final List<String> updateColumnNames) {
      this.updateColumnNames = updateColumnNames;
   }

   public void setComparableColumns(final Map<String, String> comparableColumns) {
      this.comparableColumns = comparableColumns;
   }

   public void setInsertable(final boolean insertable) {
      this.insertable = insertable;
   }

   public void setUpdatable(final boolean updatable) {
      this.updatable = updatable;
   }

   public void setKeyValues(final List<Object> keyValues) {
      this.keyValues = keyValues;
   }

   public void setOtherValues(final List<Object> otherValues) {
      this.otherValues = otherValues;
   }

   public void setUpdateValues(final List<Object> updateValues) {
      this.updateValues = updateValues;
   }

   public void setDropWhenValueTooLarge(final boolean dropWhenValueTooLarge) {
      this.dropWhenValueTooLarge = dropWhenValueTooLarge;
   }

   public void setDropWhenCannotInsertNull(final boolean dropWhenCannotInsertNull) {
      this.dropWhenCannotInsertNull = dropWhenCannotInsertNull;
   }

   public void setDropWhenValueLargeThanSpecifiedPrecision(final boolean dropWhenValueLargeThanSpecifiedPrecision) {
      this.dropWhenValueLargeThanSpecifiedPrecision = dropWhenValueLargeThanSpecifiedPrecision;
   }

   public boolean equals(final Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof DbBase)) {
         return false;
      } else {
         DbBase other = (DbBase)o;
         if (!other.canEqual(this)) {
            return false;
         } else if (this.isInsertable() != other.isInsertable()) {
            return false;
         } else if (this.isUpdatable() != other.isUpdatable()) {
            return false;
         } else if (this.isDropWhenValueTooLarge() != other.isDropWhenValueTooLarge()) {
            return false;
         } else if (this.isDropWhenCannotInsertNull() != other.isDropWhenCannotInsertNull()) {
            return false;
         } else if (this.isDropWhenValueLargeThanSpecifiedPrecision() != other.isDropWhenValueLargeThanSpecifiedPrecision()) {
            return false;
         } else {
            label119: {
               Object this$targetTableName = this.getTargetTableName();
               Object other$targetTableName = other.getTargetTableName();
               if (this$targetTableName == null) {
                  if (other$targetTableName == null) {
                     break label119;
                  }
               } else if (this$targetTableName.equals(other$targetTableName)) {
                  break label119;
               }

               return false;
            }

            label112: {
               Object this$keyColumnNames = this.getKeyColumnNames();
               Object other$keyColumnNames = other.getKeyColumnNames();
               if (this$keyColumnNames == null) {
                  if (other$keyColumnNames == null) {
                     break label112;
                  }
               } else if (this$keyColumnNames.equals(other$keyColumnNames)) {
                  break label112;
               }

               return false;
            }

            label105: {
               Object this$otherColumnNames = this.getOtherColumnNames();
               Object other$otherColumnNames = other.getOtherColumnNames();
               if (this$otherColumnNames == null) {
                  if (other$otherColumnNames == null) {
                     break label105;
                  }
               } else if (this$otherColumnNames.equals(other$otherColumnNames)) {
                  break label105;
               }

               return false;
            }

            Object this$updateColumnNames = this.getUpdateColumnNames();
            Object other$updateColumnNames = other.getUpdateColumnNames();
            if (this$updateColumnNames == null) {
               if (other$updateColumnNames != null) {
                  return false;
               }
            } else if (!this$updateColumnNames.equals(other$updateColumnNames)) {
               return false;
            }

            label91: {
               Object this$comparableColumns = this.getComparableColumns();
               Object other$comparableColumns = other.getComparableColumns();
               if (this$comparableColumns == null) {
                  if (other$comparableColumns == null) {
                     break label91;
                  }
               } else if (this$comparableColumns.equals(other$comparableColumns)) {
                  break label91;
               }

               return false;
            }

            label84: {
               Object this$keyValues = this.getKeyValues();
               Object other$keyValues = other.getKeyValues();
               if (this$keyValues == null) {
                  if (other$keyValues == null) {
                     break label84;
                  }
               } else if (this$keyValues.equals(other$keyValues)) {
                  break label84;
               }

               return false;
            }

            Object this$otherValues = this.getOtherValues();
            Object other$otherValues = other.getOtherValues();
            if (this$otherValues == null) {
               if (other$otherValues != null) {
                  return false;
               }
            } else if (!this$otherValues.equals(other$otherValues)) {
               return false;
            }

            Object this$updateValues = this.getUpdateValues();
            Object other$updateValues = other.getUpdateValues();
            if (this$updateValues == null) {
               if (other$updateValues != null) {
                  return false;
               }
            } else if (!this$updateValues.equals(other$updateValues)) {
               return false;
            }

            return true;
         }
      }
   }

   protected boolean canEqual(final Object other) {
      return other instanceof DbBase;
   }

   public int hashCode() {
//      int PRIME = true;
      int result = 1;
      result = result * 59 + (this.isInsertable() ? 79 : 97);
      result = result * 59 + (this.isUpdatable() ? 79 : 97);
      result = result * 59 + (this.isDropWhenValueTooLarge() ? 79 : 97);
      result = result * 59 + (this.isDropWhenCannotInsertNull() ? 79 : 97);
      result = result * 59 + (this.isDropWhenValueLargeThanSpecifiedPrecision() ? 79 : 97);
      Object $targetTableName = this.getTargetTableName();
      result = result * 59 + ($targetTableName == null ? 43 : $targetTableName.hashCode());
      Object $keyColumnNames = this.getKeyColumnNames();
      result = result * 59 + ($keyColumnNames == null ? 43 : $keyColumnNames.hashCode());
      Object $otherColumnNames = this.getOtherColumnNames();
      result = result * 59 + ($otherColumnNames == null ? 43 : $otherColumnNames.hashCode());
      Object $updateColumnNames = this.getUpdateColumnNames();
      result = result * 59 + ($updateColumnNames == null ? 43 : $updateColumnNames.hashCode());
      Object $comparableColumns = this.getComparableColumns();
      result = result * 59 + ($comparableColumns == null ? 43 : $comparableColumns.hashCode());
      Object $keyValues = this.getKeyValues();
      result = result * 59 + ($keyValues == null ? 43 : $keyValues.hashCode());
      Object $otherValues = this.getOtherValues();
      result = result * 59 + ($otherValues == null ? 43 : $otherValues.hashCode());
      Object $updateValues = this.getUpdateValues();
      result = result * 59 + ($updateValues == null ? 43 : $updateValues.hashCode());
      return result;
   }

   public String toString() {
      String var10000 = this.getTargetTableName();
      return "DbBase(targetTableName=" + var10000 + ", keyColumnNames=" + this.getKeyColumnNames() + ", otherColumnNames=" + this.getOtherColumnNames() + ", updateColumnNames=" + this.getUpdateColumnNames() + ", comparableColumns=" + this.getComparableColumns() + ", insertable=" + this.isInsertable() + ", updatable=" + this.isUpdatable() + ", keyValues=" + this.getKeyValues() + ", otherValues=" + this.getOtherValues() + ", updateValues=" + this.getUpdateValues() + ", dropWhenValueTooLarge=" + this.isDropWhenValueTooLarge() + ", dropWhenCannotInsertNull=" + this.isDropWhenCannotInsertNull() + ", dropWhenValueLargeThanSpecifiedPrecision=" + this.isDropWhenValueLargeThanSpecifiedPrecision() + ")";
   }
}
